package com.cn.roowoo.utils.singleton;
/**
 * 单例模式：
 * 实现方式三：使用静态内部类实现单例
 * 
 * 原理：同样利用了classloder的机制来保证初始化instance时只有一个线程。比较饿汉式的两种方式，其实看起来差别并不大，但是，使用静态内部类：
 *     当类 SingletonByThree 被装载时，静态内部类 SingletonClass并没有被类加载器装载，因此 instance 实例并没有被初始化，只有当
 *     外部调用 getInstance() 方法时才会去装载 静态内部类，此时静态成员变量就会被加载，而且只加载一次，进而达到了 懒加载机制，并且实现了单例模式
 * 
 * 问题：推荐使用
 *
 */
public class SingletonByThree {

	private static class SingletonClass {
		private static SingletonByThree instance = new SingletonByThree();
	}

	public static SingletonByThree getInstance() {
		return SingletonClass.instance;
	}
}
